In [1]:
## 사전 실행 코드
import polars as pl
df_boxoffice = pl.read_csv("D:/book/polars/data/movie/KOBIS_기간별박스오피스.csv", skip_rows = 4, try_parse_dates=True)
boxoffice_cols = df_boxoffice.columns
boxoffice_cols[4] = '매출액점유율'
df_boxoffice.columns = [i.replace(' ', '') for i in boxoffice_cols]
df_boxoffice = df_boxoffice.with_columns(
pl.col('매출액', '누적매출액').str.replace_all(',', '').cast(pl.Int64),
pl.col('관객수', '누적관객수', '스크린수', '상영횟수').str.replace_all(',', '').cast(pl.Int64)
)
df_boxoffice = df_boxoffice.with_columns(
pl.col('장르').str.split(','),
pl.col('배우').str.split(','),
)
df_boxoffice = (df_boxoffice.filter(
pl.col('순위').is_not_null()).
filter(~(pl.col('장르').list.contains('성인물(에로)'))).
filter(pl.col('매출액') != 0).
filter(~((pl.col('관객수') <= 1) & (pl.col('누적관객수') <= 1) &
(pl.col('스크린수') <= 1) & (pl.col('상영횟수') <= 1)))
)
import altair as alt
import plotly.express as px
8장 폴라스로 영화 데이터 생생하게 그리기¶
8.1 폴라스 시각화의 특징 알아보기¶
8.2 폴라스로 손쉽게 데이터 시각화하기¶
8.3 영화 데이터를 시각적으로 풍부하게 표현하기¶
8.3.3 페어 플롯으로 한눈에 비교하는 변수 간 관계¶
In [2]:
(df_boxoffice.filter(pl.col('순위') <= 100)
.select(['매출액', '누적매출액', '관객수', '누적관객수', '스크린수', '상영횟수'])
.plot.point(x = alt.X(alt.repeat("column"), type ='quantitative'),
y = alt.Y(alt.repeat("row"), type ='quantitative'))
.repeat(row = ['매출액', '스크린수', '누적매출액'], column = ['관객수', '상영횟수', '누적관객수']))
Out[2]:
In [3]:
fig = px.scatter_matrix(
df_boxoffice.select(['매출액', '누적매출액', '관객수', '누적관객수', '스크린수', '상영횟수']).to_pandas())
fig.show()